Applications installed on computing devices, including mobile computing devices such as tablets and smartphones, may specify capabilities the application needs in order to function properly. For example, an application installed on a smartphone may request access to the phone number of the smartphone, current location data for the smartphone, and the list of contacts stored on the smartphone or in a user's account that is logged in to on the smartphone.
An application may define a list of capabilities the application requires in a file called a manifest. When the application is installed on a computing device, the application may be given all the capabilities that are specified in the manifest by default. Users may not be able to limit which capabilities an application is given to only a subset of the capabilities requested by the application. A user who does not wish to grant the application certain capabilities, for example, the capability to access the computing device's current location, may have no choice but to not install the application. In order to install the application, the user may be required to grant the application all of the requested capabilities. Additionally, applications may crash, refuse to provide other services or otherwise ungracefully handle situations when the application has not been granted the capabilities the application expects to have. A user's desire to limit the capabilities of installed applications may limit the applications that the user can install and use on their computing device. This may make it difficult for a user to run the applications they would like while still protecting data on their computing device or in their user account from being accessed by the applications.